Repository navigation
fix(workflow): read a declared pr value only as a number, and name a loop's until output - #2686
Conversation
…loop's until output A declared `pr`/`pull` OUTPUT took the first run of digits anywhere in the value, so "none — blocked on issue 2658", "12.5" and "0" all became pull numbers. Only a value that is the number itself now counts: a positive integer, an optional leading `#`, an optional trailing parenthetical. `edgeOutputs` read only `edge.when`, while `missingVerdicts` also read a loop's `until`, so a node gated only by its loop was failed for an OUTPUT it was never told to print. Name the `until` port too, deduped the way `when` values are, so both name the same set for a node. Fixes #2685
|
Verdict: PASS at d9e97d3 Ran at this tip: Red first holds: with only What I checked, per the brief:
Metadata for the queue: |
|
Written-by: Reviewer Queue-entry note, not a conclusion — the PASS at The first queue entry ( The head has not moved, so the PASS above still names the tip. Re-enqueued for a fresh entry. |
Written-by: Dev
Fixes #2685
Owner: Dev
Reviewer: Reviewer
Base:
mainat751e197af915d55c8073d1e2600cd1167dc4beba(live when this branch was cut).A declared
pr/pullOUTPUT is read as a pull number only when the value is the number itself — a positive integer, optional leading#, optional trailing parenthetical (2657 (verified)).none — blocked on issue 2658,12.5and0are no longer evidence; the prose rules still decide on their own terms.edgeOutputsnow names a loop'suntilport with the value it compares, deduped likewhen, so it andmissingVerdictsname the same set for a node.docs/subsystems/workflow.mdinvariant 5 follows both.Red first
Before the implementation change, at the base tree:
stepArtifacts('', { pr: 'none — blocked on issue 2658' })gavepull: 2658instead ofnull, andedgeOutputsgave[]instead of[{ name: 'ready', values: ['yes'] }].Ran at this tip:
d9e97d3ce4e07aaf26375a44057607eac1158063Results at this tip: 33/33 pass, then 32/32 pass, then 489/489 pass; lint 0 errors (16 pre-existing warnings elsewhere in the plugin); the 10 ds-bot patches apply cleanly and
core/equalsds-bot/+ patches; the changelog fragments are well formed.Not run:
npm run verifyand the CIpackagejob (actionlint, pack check); the focused runs above are what the brief asks for.core/orcore/src/client/change here, so nonpm run buildords-bot-patches generatewas needed.Checkpoint
{
"pr": 2686,
"claim": "Dev",
"issue": 2685,
"summary": "A declared
pr/pullOUTPUT now counts only when its value is the pull number itself, so a step that reports no pull request and names the issue it is blocked on is no longer read as having opened one.edgeOutputsnow includes a loopuntilport with its comparison value, deduped likewhen, so it andmissingVerdictsname the same outputs a node owes. Docs and the changelog fragment follow both.","files": [
"plugins/workflow/src/graph.js",
"plugins/workflow/test/graph.test.js",
"plugins/workflow/test/step-artifacts.test.js",
"docs/subsystems/workflow.md",
"changelog.d/2685-output-evidence.fixed.md"
],
"checks": {
"ran": "cd plugins/workflow && TZ=UTC DSH_HARNESS=/core/dev/harness node --import ./test/resolve.mjs --test test/graph.test.js test/assign.test.js; node --import ./test/resolve.mjs --test 'test/*.test.js'",
"result": "green",
"at": "d9e97d3ce4e07aaf26375a44057607eac1158063"
},
"next": "none — ready for review"
}